Portable electronic processor-based devices with diverse capabilities have become very popular around the world. As the popularity of portable electronic devices has increased, so too has consumer dependence on these devices. Consumers now rely on portable electronic devices, such as personal computers, personal digital assistants (PDAs), cellular telephones, and satellite-based positioning system devices, for everything from remote Internet access to communication. Increasingly, consumers demand varied data and voice capabilities in one relatively small device. Manufacturers have responded by producing handheld devices with multiple data, voice and satellite-based positioning capabilities.
An example of a device that performs several functions or applications is a cellular phone that can send and receive email, send and receive text messages, and locate itself using satellite-based positioning technology. Personal digital assistants (PDAs) also provide increasingly varied applications to users. Each application requires processing power and memory, some of which may be resident on the device, and some of which may be remotely hosted. Various manufacturers typically produce components and software to perform specific functions on a device. These various components and associated software for various functions are typically inserted in a larger system and must communicate and cooperate so as to efficiently use available resources on the device, including processor cycles and memory.
Even though semiconductor manufacturing technology has progressed to produce greater capability in ever smaller packages, there is always a demand for more processing power and memory, especially on small devices. For example, if memory is not used efficiently, it may be necessary to provide more physical memory, which increases both the size and the cost of the device. It is therefore desirable for the specifically designed hardware and software to be configurable so as to flexibly allocate scarce resources, such as memory, when inserted in the larger system of the device. Memory is a particularly important resource in systems that process large amounts of data, such as signal processing intensive systems. An example of a signal processing system whose performance is typically in direct proportion to the amount of memory available is a satellite-based positioning system. Commonly, the speed and efficiency of the satellite-based positioning system is limited by the amount of memory it is able to use. It is therefore desirable to have efficient memory usage in systems, such as signal processing systems, that are to be integrated into larger systems.